前一天大致上了解一下,TypeScript 有支援哪些型別,從今天開始,將一一來每一個型別的定義和使用。
TypeScript 的數字和 JavaScript 一樣都是浮點數,其型別寫法為 number
。
除了有支援 10 進位和 16 進位,另外在 ECMAScript 2015 引入 2 進位和 8 進位之後,也有支援。
let binaryLiteral: number = 0b1010; // ES6 中的二進位制表示法
let octalLiteral: number = 0o744; // ES6 中的八進位制表示法
經過編譯過後
var binaryLiteral = 10; // ES6 中的二進位制表示法
var octalLiteral = 484; // ES6 中的八進位制表示法
String 表示方式和 JavaScript 一樣,可以使用雙引號 ""
或單引號 ''
,當然也可以使用 ES6
引入的模板字串(template literal)。
let name: string = `CY`;
let age: number = 28;
let sentence: string = `Hello, my name is ${ name }.
I'll be ${ age + 1 } years old next month.`;
let isFund: boolean = true;
Undefined 和 Null 在 TypeScript 裡面一樣各自為一個型別,都是指無效,但兩者差異和在 JavaScript 一樣。
let cy: undefined = undefined;
let foo: null = null;
而在預設的情況下,null
和 undefined
是所有型別的子型別,所以可以賦值給其他型別,如下:
let num: number = undefined;
上面例子能成立,主要 strictNullChecks 要是 false才行。不過預設 strictNullChecks 就已經是 false。
在 ES6 後,加入的基礎型別,具有唯一性且不得改變。
而 symbol 的值是透過 Symbol 建構函式來創建。
let sym1 = Symbol("cy");
let sym2 = Symbol("cy");
sym1 === sym2; // false
symbol 也可以和字串一樣成為物件屬性的 key 值
let sym = Symbol();
let obj = {[sym]: "value"};
console.log(obj[sym]); // "value"
更多關於 symbol 的用法,TypeScript 都有支援。
今天來了解原始型別是什麼,並去試著使用 TypeScript 來定義,萬丈高樓平地起,穩固目前學習到的,為明天的挑戰做準備。